/*
 * PruebaHuffman.cpp
 *
 *  Created on: 09/06/2013
 *      Author: jonathan
 */

#include "PruebaHuffman.h"
#include "../commons/bitstream.h"
#include "../commons/Huffman.h"
#include <iostream>
void PruebaHuffman::run(){
	ResultadoTest resTotal("----------------TESTHUFFMAN OK ------------------");
	resTotal.assertTrue(this->escribirYLeer().getResultado(), "Test1");
	resTotal.getResultado();
}

ResultadoTest PruebaHuffman::escribirYLeer(){
	ResultadoTest res("leerYEscribir");
	BitStream bs("pruebaHuffman", ios_base::out);
	Huffman<int> huff1(4);
	Huffman<int> huff2(4);
	Huffman<int> huff3(4);
	Huffman<int> huff4(4);
	BitStream * bsp = &bs;
	huff1.encode(bsp, 0);
	huff2.encode(bsp, 1);
	huff3.encode(bsp, 2);
	huff4.encode(bsp, 3);
	bs.close();
	Huffman<int> huff5(4);
	Huffman<int> huff6(4);
	Huffman<int> huff7(4);
	Huffman<int> huff8(4);
	BitStream bs2("pruebaHuffman", ios_base::in);
	bsp = &bs2;
	res.assertEquals(0, huff5.decode(bsp));
	res.assertEquals(1, huff6.decode(bsp));
	res.assertEquals(2, huff7.decode(bsp));
	res.assertEquals(3, huff8.decode(bsp));
	return res;
}
void PruebaHuffman::after(){

}


void PruebaHuffman::before(){
	this->borrarArchivo("pruebaHuffman");
}
